$(function () {

    $("#menu_datagrid").datagrid({
        url:"/menu/selectAllMenu",
        columns:[[
            {field:'text',title:'名称',width:1,align:'center'},
            {field:'url',title:'地址',width:1,align:'center'},
            {field:'parent',title:'上级菜单',width:1,align:'center',formatter:function(value,row,index){
                    return value?value.text:'';
                }
            }
        ]],
        // fit:true,
        rownumbers:true,
        singleSelect:true,
        striped:true,
        pagination:true,
        fitColumns:true,
        toolbar:'#menu_toolbar'
    });

    /*
     * 初始化新增/编辑对话框
     */
    $("#menu_dialog").dialog({
        width:300,
        height:300,
        closed:true,
        buttons:'#menu_dialog_bt'
    });

    /*课时103-菜单管理页 添加按钮 insert进数据库menu表*/
    $("#add").click(function () {
        $("#menu_dialog").dialog("setTitle","新增menu");
        $("#menu_dialog").form("clear");
        $("#menu_dialog").dialog("open");
        /*重新加载父menu下拉框*/
        $("#parentMenu").combobox("reload");
    });

    /*课时104-菜单管理页 修改按钮*/
    $("#edit").click(function (){
        $("#menu_form").form("clear");
        $("#menu_dialog").dialog("setTitle","编辑menu");
        var rowData = $("#menu_datagrid").datagrid("getSelected");
        if (!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }

        /*父菜单下拉框 回显*/
        if(rowData.parent) {
            rowData["parent.id"] = rowData.parent.id;
        }else {
            $("#parentMenu").each(function(i){
                var span = $(this).siblings("span")[i];
                var targetInput = $(span).find("input:first");
                if(targetInput){
                    $(targetInput).attr("placeholder", $(this).attr("placeholder"));
                }
            });
        }

        /*弹出 编辑框*/
        $("#menu_dialog").dialog("setTitle","编辑员工");
        $("#menu_dialog").dialog("open");
        /*回显数据 到 编辑框*/
        $("#menu_form").form("load",rowData);
        /*刷新父menu下拉框*/
        $("#parentMenu").combobox("reload");

    });


    /*刷新按钮*/
    $("#reload").click(function () {

        /*清空搜索框内的内容*/
        var keyword = $("[name='keyword']").val('');

        /*val(里面写了东西就是设置值，，写个单引号放着表示keyword搜索框内容为空) */

        /*刷新datagrid*/
        $("#menu_datagrid").datagrid('load',{});
        /*刷新父menu下拉框*/
        $("#parentMenu").combobox("reload");
    });

    /*搜索按钮*/
    $("#searchbtn").click(function () {

        /*获取搜索框内 的数据*/
        var keyword = $("[name='keyword']").val();

        /*把搜索框内的数据 发给后台，，然后 刷新 dategrid*/
        $("#menu_datagrid").datagrid("load",{selecttext:keyword}); /*文件名字是随便起的*/
        /*刷新父menu下拉框*/
        $("#parentMenu").combobox("reload");
    });

    /*课时106：删除按钮*/
    $("#delete").click(function (){

        /*必须选择1行数据，才能进行编辑*/
        var rowData = $("#menu_datagrid").datagrid("getSelected");

        if (!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        console.log("当前选中menu.id: "+rowData.id+" ,menu.text: "+rowData.text);
        $.messager.confirm("确认","是否删除该menu",function (res) {
            if (res) {
                /*点击删除 */
                $.get("/menu/deleteMenu?id="+rowData.id,function (data) {

                    /*ajax结果集*/
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*重新加载表格*/
                        $("#menu_datagrid").datagrid("reload");
                        $("#parentMenu").combobox("reload");

                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                });
            }
        })
    });


    /*课时102-新增按钮,dialog form表单的 ‘父菜单’的下拉框-获取所有menu*/
    $("#parentMenu").combobox({
        url:'/menu/selectAllMenuNoPage',
        width:170,
        panelHeight:'auto',
        textField:'text',
        valueField:'id',
        editable:false,
        onLoadSuccess:function () { /*数据加载完毕之后回调*/
            $("#parentMenu").each(function(i){
                var span = $(this).siblings("span")[i];
                var targetInput = $(span).find("input:first");
                if(targetInput){
                    $(targetInput).attr("placeholder", $(this).attr("placeholder"));
                }
            });
        }
    });


    /*课时103-菜单管理页 添加按钮 dialog弹窗保存按钮 insert进数据库menu表*/
    $("#save").click(function () {

        /*点击添加按钮时，做判断*/

        /*1.看看获取id，有没有值*/
        var id = $("[name='id']").val();
        var url ;
        if (id){

            /*不能选择自己为父menu*/
            var parent_id = $("[name='parent.id']").val();
            if (id == parent_id){
                $.messager.alert("温馨提示","不能选择自己为父menu");
                return;
            }

            /*id有值，说明取到了表格的数据，就是更新修改操作*/
            /*课时105：菜单管理页，修改按钮，修改(Service层业务逻辑：不能选择子菜单做父菜单，那就判断我选择的父菜单的父菜单是不是我自己)*/
            url="/menu/updateMenu";
        } else {
            /*id没值，说明没选中数据表格上的值，那就是说明要做增加操作*/
            url = "/menu/addMenu";
        }

        /*提交表单*/
        $("#menu_form").form("submit",{
            url: url,
            success:function (data) {
                console.log(data);
                /*解析成json*/
                data = $.parseJSON(data);
                if(data.success){
                    $.messager.alert("温馨提示",data.msg);
                    $("#menu_dialog").dialog("close");
                    /*重新加载父menu下拉框*/
                    $("#parentMenu").combobox("reload");
                    $("#menu_datagrid").datagrid("reload");
                }else {
                    $.messager.alert("温馨提示",data.msg);
                }
            },
        });
    });

    $("#cancel").click(function () {
        $("#menu_dialog").dialog("close");
    });

});